home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / dora / doradset.plp < prev    next >
Text File  |  1993-11-30  |  13KB  |  575 lines

  1. /*    オートダウンロード制御ファイル作成処理    */
  2. %SETDOWN1{
  3.     loop    ({
  4.         footnote({ダウンロード元を指定して下さい});
  5.         SNDMSG({erande_f.snd});
  6.         select    ({ダウンロード元を指定して下さい},
  7.             Wtime4,            {im({No})},
  8.             {データライブラリ},    {AUTOdlib;im({Yes})},
  9.             {プロフィール情報},    {AUTOprof;im({Yes})},
  10.             {     終  了     },    {im({No})}
  11.             )
  12.         });
  13.     CloseAllMemo;
  14.     mclear(memono);
  15.     case    (@filechk(TEMP2|{_mopdlib.wrk}),
  16.         {Yes},{mread(TEMP2|{_mopdlib.wrk},memono)}
  17.         );
  18.     };
  19.  
  20. %RESERV    {
  21.     case    (reserv,
  22.         { 1},{im({})},
  23.         { 2},{im({保留;})},
  24.         ,{im({})}
  25.         );
  26.     };
  27.  
  28. /*    データライブラリからのダウンロード制御文作成    */
  29. %AUTOdlib
  30.     {
  31.     footnote({データライブラリからのダウンロード制御文作成});
  32.     var    forum    [8];
  33.     var    libno    [3];
  34.     var    dataname[12];
  35.     var    datafile[64];
  36.     var    docfile    [64];
  37.     var     ok[2];
  38.     loop    ({
  39.         SNDMSG({nyuryo_f.snd});
  40.         %a    @plane(    {cデータライブラリからのダウンロード\n}|
  41.                 {t ネット名 /xxxxxxxx\n}|
  42.                 {cSIGボードの場合はネット名の代わりに\n}|
  43.                 {cパスワードを入力して下さい\n}|
  44.                 {tライブラリ番号/xxx\n}|
  45.                 {tデータ名称/xxxxxxxxxxxx\n}|
  46.                 {tデータファイル/\n}|
  47.                 {s              ファイル一覧/ 選択 \n}|
  48.                 {t 概要ファイル /\n}|
  49.                 {r ダウンロード予約 /予約  /保留\n}|
  50.                 {s              /  登録  /  取消  \n},
  51.             @SCANPW(libno),libno,dataname,datafile,docfile,1);
  52.         forum:=        @head(@getline(a,1,1),{\n});
  53.         libno:=        @head(@getline(a,2,1),{\n});
  54.         dataname:=    @head(@getline(a,3,1),{\n});
  55.         datafile:=    @head(@getline(a,4,1),{\n});
  56.         %sel1        @head(@getline(a,5,1),{\n});
  57.         docfile:=    @head(@getline(a,6,1),{\n});
  58.         %reserv        @head(@getline(a,7,1),{\n});
  59.         ok:=        @head(@getline(a,8,1),{\n});
  60.         im({No});    /* 右クリック時のデフォルト値 */
  61.         case    (sel1,
  62.             { 1},
  63.             {
  64.             footnote({});
  65.     case(FSW={},
  66.         {Yes},{setcdir(LOG2|{FREESOFT\})},
  67.         {No},{setcdir(FSW)});
  68.             datafile:=@FILEsel1;
  69.             docfile:=@body(datafile,,{.})|{.ggg};
  70.             im({Yes});
  71.             });
  72.         case    (ok,
  73.             { 1},
  74.             {
  75.             case    ((datafile={}||@getchar(datafile,2,2)={:\})&&
  76.                  @getchar(docfile,2,2)={:\},
  77.                 {No},
  78.                 {
  79.                 footnote({ファイル名はドライブからの}|
  80.                     {フルパスで指定してください});
  81.                 im({Yes});
  82.                 },
  83.                 {Yes},
  84.                 {
  85.                 case    (@filechk(datafile)||datafile=docfile,
  86.                     {Yes},
  87.                     {
  88.                     footnote({データファイル名が}|
  89.                         {重複しています});
  90.                     im({Yes});
  91.                     },
  92.                     {No},
  93.                     {
  94.                     case    (forum<>{} && libno<>{} &&
  95.                     dataname<>{} && datafile<>{},
  96.                     {Yes},
  97.                     {
  98.                     %res1    @RESERV|
  99.                         {forum=}|forum|{;}|
  100.                         {libno=}|libno|{;}|
  101.                         {dataname=}|dataname|{;}|
  102.                         {docfile=}|docfile|{;}|
  103.                         {datafile=}|datafile|{;\n};
  104.                     write(TEMP2|{_mopdlib.wrk},res1);
  105.                     im({No});
  106.                     },
  107.                     {No},{im({Yes})})
  108.                     });
  109.                 });
  110.             },
  111.             { 2},{im({No})}
  112.             );
  113.         });
  114.     };
  115.  
  116. /*    ダウンロードファイル指定処理    */
  117. %FILEsel1{
  118.     var    dnfile    [64];
  119.     SNDMSG({erande_f.snd});
  120.     dnfile:=@filesel;
  121.     case(dnfile<>{},{Yes},{dnfile:=@dir2(@getcdir)|dnfile});
  122.     im(dnfile);
  123.     };
  124.  
  125. /*    プロフィール情報のダウンロード制御文作成    */
  126. %AUTOprof{
  127.     footnote({プロフィール情報ダウンロード制御文作成});
  128.     var    id    [90];
  129.     id:={};
  130.     loop    ({
  131.         SNDMSG({nyuryo_f.snd});
  132.         %a    @plane(    {cプロフィール情報ダウンロード\n}|
  133.                 {t   ID番号   /\n}|
  134.                 {c       カンマ「,」で区切って複数指定可能 \n}|
  135.                 {s              / 検索 \n}|
  136.                 {r ダウンロード予約 /予約  /保留\n}|
  137.                 {s              / 登録 / 取消 \n},
  138.                 id,1);
  139.         id:=    @head(@getline(a,1,1),{\n});
  140.         %search    @head(@getline(a,2,1),{\n});
  141.         %reserv    @head(@getline(a,3,1),{\n});
  142.         %ok    @head(@getline(a,4,1),{\n});
  143.         im({No});    /* 右クリック時のデフォルト値 */
  144.         case    (search,
  145.             { 1},
  146.             {
  147.             %id1    @IDsearch;
  148.             case    (id1<>{},
  149.                 {Yes},
  150.                 {
  151.                 case    (id<>{},
  152.                     {Yes},{id:=id|{,}|id1},
  153.                     {No},{id:=id1}
  154.                     );
  155.                 });
  156.             im({Yes})}
  157.             );
  158.         case    (ok,
  159.             { 1},
  160.             {
  161.             %cntl    @RESERV|{profile=}|id|{;};
  162.             write(TEMP2|{_mopdlib.wrk},cntl|{\n});
  163.             im({No});
  164.             },
  165.             { 2},{im({No})}
  166.             );
  167.         });
  168.     };
  169.  
  170. /*    オートダウンロード制御ファイル更新処理    */
  171. %UPDATE1{
  172.     var    LineNo    [6];
  173.     LineNo:=@xlinenum;
  174.     %MaxLine@nolmemo(memono);
  175.     case    (LineNo>MaxLine,
  176.         {Yes},{LineNo:=MaxLine},
  177.         {No},{case(LineNo<1,{Yes},{LineNo:=1})}
  178.         );
  179.     %dnld    @memo(memono,LineNo,1);
  180.     case    (@head(dnld,{=}),
  181.         {forum},    {UPDATE(@UPDdlib(dnld))},
  182.         {保留;forum},    {UPDATE(@UPDdlib(dnld))},
  183.         {profile},    {UPDATE(@UPDprof(dnld))},
  184.         {保留;profile},    {UPDATE(@UPDprof(dnld))},
  185.         ,        {CloseAllMemo}
  186.         );
  187.     };
  188.  
  189. %UPDATE    {
  190.     [new]
  191.     case    (new,
  192.         dnld,        /* 変更無し */
  193.         {CloseAllMemo},
  194.         {},        /* 削除 */
  195.         {
  196.         CloseAllMemo;
  197.         mclear(memono);
  198.         case    (LineNo>1,
  199.             {Yes},
  200.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},1,LineNo-1))}
  201.             );
  202.         case    (LineNo<MaxLine,
  203.             {Yes},
  204.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},LineNo+1))}
  205.             );
  206.         mwrite(TEMP2|{_mopdlib.wrk},memono);
  207.         },
  208.         ,        /* 変更あり */
  209.         {
  210.         CloseAllMemo;
  211.         mclear(memono);
  212.         case    (LineNo>1,
  213.             {Yes},
  214.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},1,LineNo-1))}
  215.             );
  216.         madd(memono,new);
  217.         case    (LineNo<MaxLine,
  218.             {Yes},
  219.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},LineNo+1))}
  220.             );
  221.         mwrite(TEMP2|{_mopdlib.wrk},memono);
  222.         });
  223.     };
  224.  
  225. /*    データライブラリからのダウンロード制御文更新    */
  226. %UPDdlib{
  227.     [dnld]
  228.     footnote({データライブラリからのダウンロード制御文更新});
  229.     var    forum    [8];
  230.     var    libno    [3];
  231.     var    dataname[64];
  232.     var    datafile[64];
  233.     var    docfile    [64];
  234.     var    ok    [2];
  235.     var    reserv    [2];
  236.     reserv:=@case    (@head(dnld,{;}),
  237.             {保留},{im({ 2})},
  238.             ,{im({ 1})}
  239.             );
  240.     forum:=        @tail(dnld,{forum=},{;});
  241.     libno:=        @tail(dnld,{libno=},{;});
  242.     dataname:=    @tail(dnld,{dataname=},{;});
  243.     datafile:=    @tail(dnld,{datafile=},{;});
  244.     docfile:=    @tail(dnld,{docfile=},{;});
  245.     loop    ({
  246.         SNDMSG({nyuryo_f.snd});
  247.         %a    @plane(    {cデータライブラリからのダウンロード\n}|
  248.                 {t ネット名 /xxxxxxxx\n}|
  249.                 {tライブラリ番号/xxx\n}|
  250.                 {tデータ名称/xxxxxxxxxxxx\n}|
  251.                 {tデータファイル/\n}|
  252.                 {s              ファイル一覧/ 選択 \n}|
  253.                 {t 概要ファイル /\n}|
  254.                 {s              ファイル一覧/ 選択 \n}|
  255.                 {r ダウンロード予約 /予約  /保留\n}|
  256.                 {s              / 登録 / 削除 / 取消 \n},
  257.                 forum,libno,dataname,datafile,docfile,reserv);
  258.         forum:=        @head(@getline(a,1,1),{\n});
  259.         libno:=        @head(@getline(a,2,1),{\n});
  260.         dataname:=    @head(@getline(a,3,1),{\n});
  261.         datafile:=    @head(@getline(a,4,1),{\n});
  262.         %sel1        @head(@getline(a,5,1),{\n});
  263.         docfile:=    @head(@getline(a,6,1),{\n});
  264.         %sel2        @head(@getline(a,7,1),{\n});
  265.         reserv:=    @head(@getline(a,8,1),{\n});
  266.         ok:=        @head(@getline(a,9,1),{\n});
  267.         case    (sel1,{ 1},
  268.             {
  269.             footnote({});
  270.             datafile:=@FILEsel1;
  271.             docfile:=@body(datafile,,{.})|{.ggg};
  272.             im({Yes});
  273.             });
  274.         case    (sel2,{ 1},
  275.             {
  276.             footnote({});
  277.             docfile:=@FILEsel1;
  278.             im({Yes});
  279.             });
  280.         case    (ok,
  281.             { 1},
  282.             {
  283.             case    ((datafile={}||@getchar(datafile,2,2)={:\}) &&
  284.                  @getchar(docfile,2,2)={:\},
  285.                 {No},
  286.                 {
  287.                 footnote({ファイル名はドライブからの}|
  288.                     {フルパスで指定してください});
  289.                 im({Yes});
  290.                 },
  291.                 {Yes},
  292.                 {
  293.                 case    (@filechk(datafile)||datafile=docfile,
  294.                     {Yes},
  295.                     {
  296.                     footnote({データファイル名が}|
  297.                         {重複しています});
  298.                     im({Yes});
  299.                     },
  300.                     {No},
  301.                     {
  302.                     im(@RESERV|{forum=}|forum|{;}|
  303.                         {libno=}|libno|{;}|
  304.                         {dataname=}|dataname|{;}|
  305.                         {docfile=}|docfile|{;}|
  306.                         {datafile=}|datafile|{;\n});
  307.                     });
  308.                 });
  309.             },
  310.             { 2},{im({})},
  311.             { 3},{im(dnld)},
  312.             ,{case(sel1={ 0}&&sel2={ 0},{Yes},{im(dnld)})}
  313.             );
  314.         });
  315.     };
  316.  
  317. /*    プロフィール情報のダウンロード制御文更新    */
  318. %UPDprof{
  319.     [dnld]
  320.     footnote({プロフィール情報ダウンロード制御文作成});
  321.     var    id    [90];
  322.     var    ok    [2];
  323.     var    reserv    [2];
  324.     reserv:=@case    (@head(dnld,{;}),
  325.             {保留},{im({ 2})},
  326.             ,{im({ 1})}
  327.             );
  328.     id:=    @tail(dnld,{profile=},{;});
  329.     loop    ({
  330.         SNDMSG({nyuryo_f.snd});
  331.         %a    @plane(    {cプロフィール情報ダウンロード\n}|
  332.                 {t   ID番号   /\n}|
  333.                 {c       カンマ「,」で区切って複数指定可能 \n}|
  334.                 {s              / 検索 \n}|
  335.                 {r ダウンロード予約 /予約  /保留\n}|
  336.                 {s              / 登録 / 削除 / 取消 \n},
  337.                 id,reserv);
  338.         id:=    @head(@getline(a,1,1),{\n});
  339.         %search    @head(@getline(a,2,1),{\n});
  340.         reserv:=@head(@getline(a,3,1),{\n});
  341.         ok:=    @head(@getline(a,4,1),{\n});
  342.         case    (search,
  343.             { 1},
  344.             {
  345.             %id1    @IDsearch;
  346.             case    (id1<>{},
  347.                 {Yes},
  348.                 {
  349.                 case    (id<>{},
  350.                     {Yes},{id:=id|{,}|id1},
  351.                     {No},{id:=id1}
  352.                     );
  353.                 });
  354.             im({Yes})}
  355.             );
  356.         case    (ok,
  357.             { 1},{im(@RESERV|{profile=}|id|{;\n})},
  358.             { 2},{im({})},
  359.             { 3},{im(dnld)},
  360.             ,{case(search={ 0},{Yes},{im(dnld)})}
  361.             );
  362.         });
  363.     };
  364.  
  365. /*    ファイルコピー    */
  366. %FILECOPY{
  367.     footnote({読み込むファイルを選択してください});
  368.     setcdir(UP);    %file    @filesel;
  369.     case    (file={},
  370.         {Yes},{CloseAllMemo},
  371.         {No},
  372.         {
  373.         CloseAllMemo;
  374.         madd(memono+1,{\n});
  375.         mclear(memono+1);
  376.         case(@filechk(file),{Yes},{mread(file,memono+1)});
  377.         mopen(memono,0,21,639,240,{r});
  378.         mclose(1);
  379.         mopen(memono+1,0,241,639,459,{r});
  380.         select({このファイル内容を追加してもいいですか?},
  381.             Wtime4,{CloseAllMemo},
  382.             {  O K },
  383.             {
  384.             CloseAllMemo;
  385.             dispoff(!DEBUG);
  386.             command({copy }|TEMP2|{_mopdlib.wrk + }|file|
  387.                 { }|TEMP2|{_mopdlib.wrk});
  388.             dispoff({No});
  389.             mclear(memono);
  390.             mread(TEMP2|{_mopdlib.wrk},memono);
  391.             },
  392.             { N G },{CloseAllMemo}
  393.             );
  394.         });
  395.     };
  396.  
  397. /*    手動編集    */
  398. %HANDEDIT{
  399.     CloseAllMemo;
  400.     mopen(memono,0,21,639,459,{w});
  401.     loop    ({
  402.         footnote({終了      取消},{b});
  403.         waitx();
  404.         case    (@xtype,
  405.             101,
  406.             {
  407.             CloseAllMemo;
  408.             mwrite(TEMP2|{_mopdlib.wrk},memono);
  409.             im({No});
  410.             },
  411.             201,
  412.             {
  413.             CloseAllMemo;
  414.             mwrite(TEMP2|{_mopdlib.wrk},memono);
  415.             im({No});
  416.             },
  417.             105,
  418.             {
  419.             CloseAllMemo;
  420.             mclear(memono);
  421.             case    (@filechk(TEMP2|{_mopdlib.wrk}),
  422.                 {Yes},{mread(TEMP2|{_mopdlib.wrk},memono)}
  423.                 );
  424.             im({No});
  425.             },
  426.             205,
  427.             {
  428.             CloseAllMemo;
  429.             mclear(memono);
  430.             case    (@filechk(TEMP2|{_mopdlib.wrk}),
  431.                 {Yes},{mread(TEMP2|{_mopdlib.wrk},memono)}
  432.                 );
  433.             im({No});
  434.             },
  435.             ,{im({Yes})}
  436.             );
  437.         });
  438.     };
  439.  
  440. /*    ダウンロード予約を保留する    */
  441. %WAIT1    {
  442.     var    LineNo    [6];
  443.     LineNo:=@xlinenum;
  444.     %MaxLine@nolmemo(memono);
  445.     case    (LineNo>MaxLine,
  446.         {Yes},
  447.         {LineNo:=MaxLine},
  448.         {No},
  449.         {case(LineNo<1,{Yes},{LineNo:=1})}
  450.         );
  451.     %line1    @memo(memono,LineNo,1);
  452.     case    (@getchar(line1,1,5)={保留;}||line1={},
  453.         {Yes},    /* 変更無し */
  454.         {CloseAllMemo},
  455.         {No},        /* 変更あり */
  456.         {
  457.         CloseAllMemo;
  458.         mclear(memono);
  459.         case(LineNo>1,{Yes},
  460.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},1,LineNo-1))});
  461.         madd(memono,{保留;}|line1);
  462.         case(LineNo<MaxLine,{Yes},
  463.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},LineNo+1))});
  464.         mwrite(TEMP2|{_mopdlib.wrk},memono);
  465.         });
  466.     };
  467.  
  468. /*    ダウンロード保留を解除(予約)する    */
  469. %RESERVE1{
  470.     var    LineNo    [6];
  471.     LineNo:=@xlinenum;
  472.     %MaxLine@nolmemo(memono);
  473.     case    (LineNo>MaxLine,
  474.         {Yes},
  475.         {LineNo:=MaxLine},
  476.         {No},
  477.         {case(LineNo<1,{Yes},{LineNo:=1})}
  478.         );
  479.     %line1    @memo(memono,LineNo,1);
  480.     case    (@getchar(line1,1,5),
  481.         {保留;},    /* 変更あり */
  482.         {
  483.         CloseAllMemo;
  484.         mclear(memono);
  485.         case    (LineNo>1,
  486.             {Yes},
  487.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},1,LineNo-1))}
  488.             );
  489.         madd(memono,@getchar(line1,6));
  490.         case    (LineNo<MaxLine,
  491.             {Yes},
  492.             {madd(memono,@read(TEMP2|{_mopdlib.wrk},LineNo+1))}
  493.             );
  494.         mwrite(TEMP2|{_mopdlib.wrk},memono);
  495.         },
  496.         ,{CloseAllMemo}    /* 変更なし */
  497.         );
  498.     };
  499.  
  500. /*    オートダウンロード制御ファイル作成メインループ    */
  501. %SETDOWN{
  502.     [memono]
  503.     CloseAllMemo;
  504.     delfile(TEMP2|{_mopdlib.wrk});
  505.     copyfile(UP2|{_mopdlib.ctl},TEMP2|{_mopdlib.wrk});
  506.     madd(memono,{\n});
  507.     mclear(memono);
  508.     case    (@filechk(TEMP2|{_mopdlib.wrk}),
  509.         {Yes},{mread(TEMP2|{_mopdlib.wrk},memono)}
  510.         );
  511.     loop    ({
  512.         mopen(memono,0,21,639,459,{r});
  513.         footnote({終了  取消    変更保留予約追加  読込編集},
  514.             {b});
  515.         waitx();
  516.         case    (@xtype,
  517.             101,
  518.             {
  519.             delfile(UP2|{_mopdlib.ctl});
  520.             copyfile(TEMP2|{_mopdlib.wrk},UP2|{_mopdlib.ctl});
  521.             im({No});
  522.             },
  523.             201,
  524.             {
  525.             delfile(UP2|{_mopdlib.ctl});
  526.             copyfile(TEMP2|{_mopdlib.wrk},UP2|{_mopdlib.ctl});
  527.             im({No});
  528.             },
  529.             103,{im({No})},        203,{im({No})},
  530.             106,{UPDATE1;im({Yes})},206,{UPDATE1;im({Yes})},
  531.             107,{WAIT1;im({Yes})},    207,{WAIT1;im({Yes})},
  532.             108,{RESERVE1;im({Yes})},
  533.             208,{RESERVE1;im({Yes})},
  534.             109,{SETDOWN1;im({Yes})},
  535.             209,{SETDOWN1;im({Yes})},
  536.             111,{FILECOPY;im({Yes})},
  537.             211,{FILECOPY;im({Yes})},
  538.             112,{HANDEDIT;im({Yes})},
  539.             212,{HANDEDIT;im({Yes})},
  540.             memono,{UPDATE1;im({Yes})},
  541.             ,{CloseAllMemo;im({Yes})}
  542.             );
  543.         });
  544.     /* ログ参照に使用したメモの削除処理 */
  545.     loop    ({
  546.         case(@mcheck>=memono,{Yes},{mclose(3)});
  547.         im(@mcheck>=memono);
  548.         });
  549.     CloseAllMemo;
  550.     loop    ({
  551.         case    (@mlast>=memono,
  552.             {Yes},
  553.             {
  554.             case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
  555.             mclose(3);
  556.             im({Yes});
  557.             },
  558.             {No},{im({No})});
  559.         });
  560.     setcdir(CDIR);
  561.     };
  562.  
  563. /*    オートダウンロード制御ファイル作成処理    */
  564. footnote({アップダウン制御ファイルのセットアップを行います});
  565. %memono    @mlast+1;
  566. case    (memono>8,
  567.     {No},{SETDOWN(memono)},
  568.     {Yes},
  569.     {
  570.     SNDMSG    ({kaknin_f.snd});
  571.     select    ({メモ8-9の内容が消去されます  よろしいですか?},
  572.         Wtime4,,
  573.         { は い },{SETDOWN(8)},
  574.         { いいえ },);
  575.     });